Skip to content

Build: sample iOS via the plugin; remove the library's duplicate staging (#321) - #327

Merged
b-re-w merged 1 commit into
developfrom
feat/sample-ios-via-plugin
Oct 25, 2026
Merged

b-re-w merged 1 commit into
developfrom
feat/sample-ios-via-plugin

Conversation

@b-re-w

@b-re-w b-re-w commented Oct 25, 2026

Copy link
Copy Markdown
Member

Closes #321 (follow-up of #90).

  • sample:
    • Removed its prepareIosFrameworks Sync and the hand-added -framework Python linker options, which the plugin's preparePythonXcframework now provides. -Objc stays.
    • The Xcode phase runs :sample:installPythonXcodeScript and then the installed build/python-multiplatform/xcode/install-python.sh. PYTHON_PAYLOAD_DIR is unchanged.
    • Only iOS wiring changed: sample already applied the bindings plugin.
  • python-multiplatform:
    • Removed stageIosPythonHome_, stageIosPythonHome and stageIosPythonHomeForXcode. Their only user was sample's old phase (grep covered .github/workflows; tools/ does not exist), and the library's task list no longer has them.
    • Kept: downloadPython_ios with its checksum and sigstore (the library's cinterop and iOS tests), extractIosSimulatorStdlib and SIMCTL_CHILD wiring (iOS tests), and :python-multiplatform:embedAndSignAppleFrameworkForXcode (sample's compile phase).
  • install-python.sh: the stale default (the removed library task) is now a placeholder that installPythonXcodeScript bakes in. A raw run without PYTHON_HOME_TASK stops with a message. I tested both the raw and the baked copy.
  • Docs: ios-app-bundle.md, SPEC, ROADMAP and the iosMain README now describe the plugin path.
  • Evidence:
    • Plugin tests 350/350.
    • :sample:preparePythonXcframework, linkDebugFrameworkIosSimulatorArm64, installPythonXcodeScript and stageIosPythonHomeForXcode pass, and the staging prints PYTHON_HOME_DIR= / PYTHON_DYLIB_INFO_TEMPLATE= under sample/build.
    • xcodebuild of the sample simulator app: BUILD SUCCEEDED. On the simulator: 'DEMO 1 runtime | 3.15.0 · sys.platform=ios' and 'DEMO 8 bundle' with the payload greeting, _json via .fwork and the stdlib under PythonDemo.app/python-multiplatform-home.
    • The library's iOS simulator and androidNative compiles pass.
    • Note: Xcode's Gradle phase needs JAVA_HOME at JDK 21 exported (the default JDK 25 breaks Gradle 8.11).

…cate stdlib-staging tasks are removed (#321)

sample drops its own Python.xcframework Sync and -framework Python linker options (the plugin's
preparePythonXcframework does both) and its Xcode phase runs :sample:installPythonXcodeScript and the
installed script. python-multiplatform's stageIosPythonHome* tasks had no user left and are removed;
its downloadPython_ios stays (the library's cinterop and iOS tests use it). install-python.sh carries a
placeholder the install task bakes, and a raw run without PYTHON_HOME_TASK stops with a message
instead of calling a task that no longer exists.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant